Skip to content

AOS CLI

Use the aos command-line interface to spawn and connect to processes on HyperBEAM mainnet.

Understanding Legacy vs. HyperBEAM

AO is currently maintaining two networks during the transition to HyperBEAM:

  • Legacy Network (aos): The current stable network that most existing processes run on
  • HyperBEAM Mainnet (hyper-aos): The new high-performance network being built out

HyperAOS represents the future direction of AOS on HyperBEAM, offering improved performance and new capabilities.

Installing aos

The primary tool for interacting with AO and developing processes is aos, a command-line interface and development environment.

bash
npm i -g https://get_ao.arweave.net
bash
pnpm add -g https://get_ao.arweave.net
bash
# Bun is not supported yet
# bun install -g https://get_ao.arweave.net

HyperBEAM Process (aos)

Enter aos into the cli to spawn a process on the HyperBEAM network (default). Create a Legacynet processes with the --legacy flag during creation.

aos --legacy

Connecting to a Specific HyperBEAM Node

You can also connect directly to a specific HyperBEAM node:

bash
aos --url "https://push.forward.computer" myMainnetProcess

This connects you to an interactive Lua environment running within a process on the HyperBEAM network at the specified URL.

Running a Local HyperBEAM Node

If you are running HyperBEAM locally and want to use that node when booting up aos, you must first start your local node with the genesis_wasm profile:

bash
rebar3 as genesis_wasm shell

Then, you can connect aos to it:

bash
aos --url "http://localhost:8734" myLocalProcess

Until aos is fully HyperBEAM native, the genesis_wasm profile is required to run a local Compute Unit (CU) for executing aos.

Interacting with Mainnet Processes

Note on Blocking Calls

Blocking message patterns, such as Receive and ao.send().receive(), are not available when running aos against a HyperBEAM process. HyperBEAM processes do not support the underlying wasm modules required for this functionality. You should rely on asynchronous patterns using handlers instead.